﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DDD.Core {
    /// <summary>
    /// 有効レンジ構造体
    /// </summary>
    /// <remarks>
    /// キーフレームの有効レンジ(インデックス)を定義します｡
    /// </remarks>
    public struct ValidRange {
        /// <summary>
        /// コンストラクター
        /// </summary>
        /// <param name="firstIndex">最初の有効なインデックス(このインデックスを含む)</param>
        /// <param name="lastIndex">最後の有効なインデックス(このインデックスを含む)</param>
        public ValidRange (int firstIndex, int lastIndex)
            : this () {
            this.First = firstIndex;
            this.Last = lastIndex;
        }
        /// <summary>
        /// 開始インデックス(このインデックスを含む)
        /// </summary>
        public int First { get; private set; }

        /// <summary>
        /// 終了インデックス(このインデックスを含む)
        /// </summary>
        public int Last { get; private set; }

        /// <summary>
        /// 有効なキーフレーム数(<see cref="Last"/>-<see cref="First"/>+1)
        /// </summary>
        public int Count { get { return (Last - First) + 1; } }
    }

}
